home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / emulator / uae-0.000 / uae-0 / uae-0.6.0 / include / readcpu.h < prev    next >
C/C++ Source or Header  |  1996-03-28  |  2KB  |  74 lines

  1. typedef enum {
  2.   Dreg, Areg, Aind, Aipi, Apdi, Ad16, Ad8r, 
  3.   absw, absl, PC16, PC8r, imm, imm0, imm1, imm2, immi, am_unknown, am_illg
  4. } amodes;
  5.  
  6. typedef enum {
  7.     i_ILLG,
  8.     
  9.     i_OR, i_AND, i_EOR, i_ORSR, i_ANDSR, i_EORSR, 
  10.     i_SUB, i_SUBA, i_SUBX, i_SBCD, 
  11.     i_ADD, i_ADDA, i_ADDX, i_ABCD,
  12.     i_NEG, i_NEGX, i_NBCD, i_CLR, i_NOT, i_TST,
  13.     i_BTST, i_BCHG, i_BCLR, i_BSET,
  14.     i_CMP, i_CMPM, i_CMPA, 
  15.     i_MVPRM, i_MVPMR, i_MOVE, i_MOVEA, i_MVSR2, i_MV2SR, 
  16.     i_SWAP, i_EXG, i_EXT, i_MVMEL, i_MVMLE, 
  17.     i_TRAP, i_MVR2USP, i_MVUSP2R, i_RESET, i_NOP, i_STOP, i_RTE, i_RTD, 
  18.     i_LINK, i_UNLK, 
  19.     i_RTS, i_TRAPV, i_RTR, 
  20.     i_JSR, i_JMP, i_BSR, i_Bcc,
  21.     i_LEA, i_PEA, i_DBcc, i_Scc,
  22.     i_DIVU, i_DIVS, i_MULU, i_MULS, 
  23.     i_ASR, i_ASL, i_LSR, i_LSL, i_ROL, i_ROR, i_ROXL, i_ROXR,
  24.     i_ASRW, i_ASLW, i_LSRW, i_LSLW, i_ROLW, i_RORW, i_ROXLW, i_ROXRW,
  25.     i_CHK,
  26.     i_MOVEC2, i_MOVE2C, i_CAS, i_DIVL, i_MULL
  27. } instrmnem;
  28.  
  29. extern struct mnemolookup {
  30.     instrmnem mnemo;
  31.     const char *name;
  32. } lookuptab[];
  33.  
  34. typedef enum {
  35.     sz_unknown, sz_byte, sz_word, sz_long
  36. } wordsizes;
  37.  
  38. typedef enum {
  39.     bit0, bit1, bitc, bitC, bitf, biti, bitI, bitj, bitJ, 
  40.     bits, bitS, bitd, bitD, bitr, bitR, bitz, lastbit
  41. } bitvals;
  42.  
  43. struct instr_def {
  44.     UWORD bits;
  45.     int n_variable;
  46.     char bitpos[16];
  47.     UWORD mask;
  48.     int plevel;
  49.     const char *opcstr;    
  50. };
  51.  
  52. extern struct instr_def defs68k[];
  53. extern int n_defs68k;
  54.  
  55. extern struct instr {
  56.     instrmnem mnemo;
  57.     wordsizes size;
  58.     amodes dmode, smode;
  59.     unsigned char dreg;
  60.     unsigned char sreg;
  61.     unsigned int suse:1;
  62.     unsigned int duse:1;
  63.     unsigned int stype:2;
  64.     unsigned int cc:4;
  65.     unsigned int plev:2;
  66.     signed char dpos;
  67.     signed char spos;
  68.     long int handler;
  69. } *table68k;
  70.  
  71. extern void read_table68k (void);
  72. extern void do_merges (void);
  73. extern int get_no_mismatches (void);
  74.